package org.huawei260.OD260;

import java.util.*;

/**
 * Created with IntelliJ IDEA.
 * Author: Amos
 * E-mail: amos@amoscloud.com
 * Date: 2020/12/5
 * Time: 17:39
 * Description:
 *
 * 主要思路
 * 读取输入：从控制台读取一行字符串和整数K。
 * 初始化数据结构：使用一个HashMap来存储每个字符的最长连续出现次数。
 * 遍历字符串：遍历输入的字符串，更新每个字符的最长连续出现次数。
 * 存储和排序：将字符及其最长连续出现次数存储在列表中，并进行降序排序。
 * 输出结果：根据K的值输出结果，如果K大于列表大小，则输出-1，否则输出第K长子串的长度。
 *
 */
public class O0015_第k长子串_answer {
	public static void main(String[] args) {
		try (Scanner scanner = new Scanner(System.in)) {
			String line = scanner.nextLine();
			int k = scanner.nextInt();
			solution(line, k);
		}
	}

	private static void solution(String line, int k) {

		// 统计字符出现次数
		HashMap<Character, Integer> map = new HashMap<>();

		// 遍历字符串
		char[] chars = line.toCharArray();
		// 空串
		if (chars.length == 0) {
			System.out.println(-1);
			return;
		}

		// 记录当前字符
		char cur = chars[0];
		int count = 1;
		// 记录当前字符出现次数
		map.put(cur, count);

		// 遍历字符串
		for (int i = 1; i < chars.length; i++) {
			// 判断是否为当前字符
			char c = chars[i];

			// 是当前字符
			if (c == cur) count++;
			// 不是当前字符
			else {
				cur = c;
				count = 1;
			}
			// 更新当前字符出现次数
//			map.put(cur, map.containsKey(cur) ? map.get(cur) > count ? map.get(cur) : count : count);
//			if (map.containsKey(cur)) {
//				if (map.get(cur) > count) {
//					// 如果map中的值大于count，保留map中的值
//					continue;
//				} else {
//					// 否则，更新map中的值为count
//					map.put(cur, count);
//				}
//			} else {
//				// 如果map中不包含cur，直接添加cur和count
//				map.put(cur, count);
//			}
			// 更新map
			map.put(cur, map.containsKey(cur) ? Math.max(map.get(cur), count) : count);
		}

		//假设 map 包含以下键值对：
		//
		//A -> 3
		//B -> 5
		//C -> 2
		//执行 list.add(entry.getKey() + "-" + entry.getValue()); 后，list 将包含以下元素：
		//
		//"A-3"
		//"B-5"
		//"C-2"
		//这些字符串随后可以被排序，例如按照次数降序排序，以便于找到第K长的子串。
		ArrayList<String> list = new ArrayList<>();
		// 遍历map
		for (Map.Entry<Character, Integer> entry : map.entrySet()) {
			list.add(entry.getKey() + "-" + entry.getValue());
		}
		// 数组降序排序
		list.sort((o1, o2) -> o2.split("-")[1].compareTo(o1.split("-")[1]));

		// 输出第k个字符
		if (k > list.size()) System.out.println(-1);
		// 否则输出
		else System.out.println(list.get(k - 1).split("-")[1]);
	}
}